package org.zuel.lkq.service;

import org.zuel.lkq.domain.Perm;
import org.zuel.lkq.domain.Role;
import org.zuel.lkq.domain.User;

import java.util.List;

/**
 * @Description:
 * @Author: Gongjc
 * @Date: 2021/2/1
 * @Version: 1.0.0
 */
public interface AuthQueryService {

    /**
     * 根据账号查询用户
     */
    List<User> queryUsername(String username);

    /**
     * 查询用户关联角色
     */
    List<Role> queryRolesByUser(Integer user);

    /**
     * 查询用户关联权限
     */
    List<Perm> queryPermsByUser(Integer user);


    /**
     * 查询用户相关的菜单
     */
    List<Perm> queryMenusByUser(Integer user);

    /**
     * 根据角色集合查询权限
     */
    List<Perm> queryPermsByRoles(List<Integer> roles, Integer annoStatus);

    /**
     * 根据角色集合查询权限
     */
    List<Perm> queryPermsByRoles(List<Integer> roles);


    /**
     * 根据角色查询相关菜单
     */
    List<Perm> queryMenusByRoles(List<Integer> roles);


    /**
     * 根据菜单查询相关权限
     */
    List<Perm> queryPermsByMenu(Integer menuId);
    /**
     * 查询所有开放权限
     */
    List<Perm> queryAnonPerms();

}
